Package org.python.pydev.refactoring.ui.pages.extractlocal

Source Code of org.python.pydev.refactoring.ui.pages.extractlocal.ExtractLocalInputPage

/*
* Copyright (C) 2007  Reto Schuettel, Robin Stocker
*
* IFS Institute for Software, HSR Rapperswil, Switzerland
*
*/

package org.python.pydev.refactoring.ui.pages.extractlocal;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.python.pydev.core.docutils.StringUtils;
import org.python.pydev.plugin.preferences.PydevPrefs;
import org.python.pydev.refactoring.coderefactoring.extractlocal.ExtractLocalRefactoring;
import org.python.pydev.refactoring.coderefactoring.extractlocal.ExtractLocalRequestProcessor;
import org.python.pydev.refactoring.messages.Messages;
import org.python.pydev.refactoring.ui.pages.core.eclipse.RowLayouter;
import org.python.pydev.refactoring.ui.pages.core.eclipse.TextInputWizardPage;

public class ExtractLocalInputPage extends TextInputWizardPage {
    public static final String PAGE_NAME = "ExtractLocalInputPage"; //$NON-NLS-1$
    private static final String EXTRACT_LOCAL_REPLACE_DUPLICATES = "EXTRACT_LOCAL_REPLACE_DUPLICATES";
    private Button replaceDuplicates;

    public ExtractLocalInputPage() {
        super(PAGE_NAME, true);
    }

    public void createControl(Composite parent) {
        Composite result = new Composite(parent, SWT.NONE);
        setControl(result);

        /* Create Label and TextField, we use the faciltiies provided by our base class */
        GridLayout layout = new GridLayout();
        layout.numColumns = 2;
        result.setLayout(layout);
        RowLayouter layouter = new RowLayouter(2);

        Label label = new Label(result, SWT.NONE);
        label.setText(Messages.extractLocalVariableName);

        Text text = createTextInputField(result);
        text.selectAll();
        text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        replaceDuplicates = new Button(result, SWT.CHECK);
        ExtractLocalRequestProcessor requestProcessor = getRequestProcessor();
        replaceDuplicates.setText(com.aptana.shared_core.string.StringUtils.format("Also replace &duplicates (%s references)?",
                requestProcessor.getDuplicatesSize()));

        IPreferenceStore preferences = PydevPrefs.getPreferences();
        boolean replace = preferences.getBoolean(EXTRACT_LOCAL_REPLACE_DUPLICATES);
        replaceDuplicates.setSelection(replace);
        requestProcessor.setReplaceDuplicates(replace);
        replaceDuplicates.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                getRequestProcessor().setReplaceDuplicates(replaceDuplicates.getSelection());
                IPreferenceStore preferences = PydevPrefs.getPreferences();
                preferences.setValue(EXTRACT_LOCAL_REPLACE_DUPLICATES, replaceDuplicates.getSelection());
            }

        });
        GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
        gridData.horizontalSpan = 2;
        replaceDuplicates.setLayoutData(gridData);

        layouter.perform(label, text, 1);

        Dialog.applyDialogFont(result);
    }

    /*
     * @see org.eclipse.jdt.internal.ui.refactoring.TextInputWizardPage#textModified(java.lang.String)
     */
    protected void textModified(String text) {
        getRequestProcessor().setVariableName(text);
        super.textModified(text);
    }

    /*
     * @see org.eclipse.jdt.internal.ui.refactoring.TextInputWizardPage#validateTextField(String)
     */
    protected RefactoringStatus validateTextField(String text) {
        return getExtractlocalRefactoring().checkVarName(text);
    }

    private ExtractLocalRequestProcessor getRequestProcessor() {
        return getExtractlocalRefactoring().getRequestProcessor();
    }

    private ExtractLocalRefactoring getExtractlocalRefactoring() {
        return (ExtractLocalRefactoring) getRefactoring();
    }
}
TOP

Related Classes of org.python.pydev.refactoring.ui.pages.extractlocal.ExtractLocalInputPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.